#ifndef __OLED_H
#define __OLED_H


enum { FONT_8 ,FONT_16};

#define OLED_RESET_H GPIO_SetBits(GPIOB,GPIO_Pin_14)
#define OLED_RESET_L GPIO_ResetBits(GPIOB,GPIO_Pin_14)

#define OLED_CMD  0
#define OLED_DATA 1

#define OLED_MODE 0
#define SIZE 8
#define XLevelL     0x00
#define XLevelH     0x10
#define Max_Column  128
#define Max_Row     64
#define Brightness  0xFF
#define X_WIDTH     128
#define Y_WIDTH     64



#define I2C_DELAY           200                         // I2CÑÓÊ±
#define I2C_ACK_TRIES       8

#define I2C_SCL_PORT GPIOB
#define I2C_SCL_PIN  GPIO_Pin_7
#define I2C_SDA_PORT GPIOB
#define I2C_SDA_PIN  GPIO_Pin_6



#define I2C_SCL_1     GPIO_SetBits(I2C_SCL_PORT,I2C_SCL_PIN);
#define I2C_SCL_0     GPIO_ResetBits(I2C_SCL_PORT,I2C_SCL_PIN);
#define I2C_SDA_1     GPIO_SetBits(I2C_SDA_PORT,I2C_SDA_PIN);
#define I2C_SDA_0     GPIO_ResetBits(I2C_SDA_PORT,I2C_SDA_PIN);


#define I2C_SDA_R()      GPIO_ReadInputDataBit(I2C_SDA_PORT,I2C_SDA_PIN)



void OLED_WR_Byte(unsigned dat,unsigned cmd);
void OLED_Display_On(void);
void OLED_Display_Off(void);
void OLED_Init(void);
void OLED_Clear(void);
void OLED_DrawPoint(u8 x,u8 y,u8 t);
void OLED_Fill(u8 x1,u8 y1,u8 x2,u8 y2,u8 dot);
void OLED_ShowChar(u8 x,u8 y,char chr,u8 Char_Size);
void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size);
void OLED_ShowString(u8 x,u8 y, char *p,u8 Char_Size);
void OLED_Set_Pos(unsigned char x, unsigned char y);
void OLED_ShowCHinese(u8 x,u8 y,u8 no);
void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[]);
//void Delay_50ms(unsigned int Del_50ms);
//void Delay_1ms(unsigned int Del_1ms);
void fill_picture(unsigned char fill_Data);
void Picture(void);
void Write_IIC_Command(unsigned char IIC_Command);
void Write_IIC_Data(unsigned char IIC_Data);
void Write_IIC_Byte(unsigned char IIC_Byte);
void OLED_ShowBar(u8 BarLen);


#endif



